6.857 | Spring 2014 | Graduate

Network and Computer Security

Pages

Some assignments do not have solutions or supporting files.

ASSIGNMENTS SAMPLE SOLUTIONS SUPPORTING FILES
Problem Set 1 (PDF) Problem 1: Solution (PDF) Problem 2: Solution (PDF) Problem 3:

Ciphertexts (TXT)

OTP-Feedback (PY)

Plot of English Run Lengths (PNG)

Problem Set 2 (PDF) Problem 1: Solution (PDF) Problem 2: No Solutions

Problem 3: Solution (PDF)

Hashes (TXT)
Problem Set 3 (PDF) Problem 1: No Solutions Problem 2: Solution (PDF)

Problem 3: Solution (PDF)

kalns (PY)

GF16 Table (TXT)

Problem Set 4 (PDF) No Solutions No Supporting Files
Problem Set 5 (PDF) No Solutions No Supporting Files 

SES # TOPICS KEY DATES
1 Introduction  
2 Security Mechanisms and Principles Problem set 1 Out
3 Encryption, Perfect Secrecy, One-Time Pad  
4 Cryptographic Hash Functions  
5 Hashing Applications and Constructions  
6 Bitcoin Problem set 1 Due, Problem set 2 Out
7 Secret Sharing  
8 Block Ciphers  
9 Block Cipher Modes  
10 Message Authentication Codes Problem set 2 Due, Project Ideas Due, Problem set 3 Out
11 Prime Finding and other “Crypto” Math  
12 Diffie-Hellman Key Exchange and Crypto Groups  
13 Pedersen Commitment, PK Encryption, DDH Project Draft Due
14 Malleability of El Gamal, IND-CCA2 Problem set 3 Due, Problem set 4 Out
15 Digital Signatures  
16 DSA, Gap Groups Project Progress Review
17 Gap Groups, Bilinear Maps, and Applications  
18 Zero-Knowledge Proofs Problem set 4 Due
19 No Lecture (Quiz) Quiz
20 Security of Voting Problem set 5 Out, Project Progress Review
21 Security of Voting (cont.)  
22 Project Presentations  
23 Project Presentations (cont.) Problem set 5 Due
24 Project Presentations (cont.)  
25 Project Presentations (cont.)  
26 No Class Final Project Due

[Katz and Lindell] = Katz, Jonathan, and Yehuda Lindell. Introduction to Modern Cryptography. Chapman and Hall / CRC, 2007. ISBN: 9781584885511. [Preview with Google Books]

Some lectures do not have readings or handouts. Sessions after Session 18 are devoted to the quiz and project presentations.

SES # LECTURE TOPICS AND NOTES READINGS AND HANDOUTS
1 Course Introduction (PDF)  
2 Security Mechanisms and Principles (PDF) Juels, Ari, and Ronald Rivest. “Honeywords: Making Password-Cracking Detectable.” ACM CCS (2013): 145–60.
3 Encryption, Perfect Secrecy, One-Time Pad (PDF - 1.6MB) [Katz and Lindell] Chapters 1, 2, and 3.
4 Cryptographic Hash Functions (PDF - 1.6MB)

Avgerinos, Thanassis, Sang Kil Cha, et al. “Automatic Exploit Generation.” Communications of the ACM 57, no. 2 (2014): 74–84.

Hess, Austin. “Student Innovators May Get New Legal Resource.” The Tech 134, no. 5 (2014).

5 Hashing Applications and Constructions (PDF - 1.7MB) Rivest, Ronald L., and Adi Shamir. “PayWord and MicroMint: Two Simple Micropayment Schemes.” (PDF) MIT Laboratory for Computer Science, 2001.
6 Bitcoin (PDF)  
7 Secret Sharing (PDF - 2.2MB)   
(Only read the section on secret sharing)
 
8 Block Ciphers (PDF - 2.8MB)  
9 Block Cipher Modes (PDF - 5.2MB) Desai, Anand. “New Paradigms for Constructing Symmetric Encryption Schemes Secure Against Chosen-Ciphertext Attack.” Advances in Crptography 1880 (2000): 394–412. (University of California at San Diego.)
10 Message Authentication Codes (PDF - 6.7MB) Bellare, M., P. Rogaway, et al. “The EAX Mode of Operation.” Fast Software Encryption 3017 (2004): 389–407.
11 Prime Finding and other “Crypto” Math (PDF - 8.1MB) Cao, Zhengjun. “A Note On the Storage Requirement for AKS Primality Testing Algorithm.” (PDF) Shanghai University.
12 Diffie-Hellman Key Exchange and Crypto Groups (PDF - 7.6MB)  
13 Pedersen Commitment, PK Encryption, DDH (PDF - 8.4MB)

Paar, Christof, and Jan Pelzl. Chapters 6, 7, and 8 in Understanding Cryptography: A Textbook for Students and Practitioners. Springer, 2011. ISBN: 9783642041006. [Preview with Google Books]

[Katz and Lindell] Chapter 10.

14 Malleability of El Gamal, IND-CCA2 (PDF - 8.1MB)

Diffie, Whitfield, and Martin E. Hellman. “New Directions in Cryptography.” IEEE Transactions on Information Theory 22, no. 6 (1976): 644–54.

Boneh, Dan. “Twenty Years of Attacks on the RSA Cryptosystem.” (PDF) Notices of the AMS 42, no. 2 (1999): 203–13.

15 Digital Signatures (PDF - 8.4MB)  
16 DSA, Gap Groups (PDF - 3.0MB) Project Progress Review
17 Gap Groups, Bilinear Maps, and Applications (PDF - 5.2MB)

Dutta, R., R. Barua, et al. “Pairing-Based Cryptographic Protocols: A Survey.” Cryptology ePrint Archive: Report 2004 / 064.

The Pairing-Based Crypto Lounge.

18 Zero-Knowledge Proofs (PDF - 4.0MB)

Goldreich, Oded. “A Short Tutorial of Zero-Knowledge.” Weizmann Institute of Science, 2010.

Cryptographic and Physical Zero-Knowledge Proof Systems for Solutions of Sudoku Puzzles.

Important Dates for the Project

By Lecture 10 – Every student must individually post one (or more) project ideas. This is a way for students to learn about what other students are interested in and find teammates. If you have more than one idea or interest, feel free to post all of your ideas, but please use different posts with different headers. Submit a one-page project idea. Your ideas can be from the project ideas we post or they can be new ideas. Feel free to choose your teammates as you wish. We expect groups to be three or four students.

By Lecture 13 – Turn in team composition and a multi-page project draft and bibliography.

Week of Lecture 16 – During this week, each project group will meet with the TA to review their progress.

Week of Lecture 20 – During this week, each project group will again meet with the TA to review their progress.

Lectures 22-25 – Groups will present short talks on their projects in class.

Lecture 26 (last class) – Written projects are due.

Project Ideas

You should also check out the references page, in particular online proceedings from the linked conferences, for inspiration.

Another source of ideas for your final project might be Phillip Hallam-Baker’s new book, The dotCrime Manifesto.

Topics from Previous Years

This list has gotten a bit long over the past few years. For now, take a look at the project pitches from 2010 and a list of projects from 2009 and before.

Hints for Writing Your Paper and Giving Your Talk

This Year’s Projects

  • Hacking Wireless
  • Preventing Covert Webcam Hacking in the Civilian and Governmental Sectors
  • Designing a Secure Biometric Identification System for Israel
  • Covert Acoustic Channels: Improving Range, Accuracy, and Undetectability
  • Covert Surveillance on PC and Android
  • Distributed Settlers of Catan
  • Tweetnet: Finding the Bots in the Flock
  • Pebble Smartwatch Security Assessment
  • Computational Security and the Economics of Password Hacking
  • Detecting Subversion on Twitter
  • Security Overview of QR Codes
  • Security Research of a Social Payment App
  • Blackbox: Distributed Peer-to-Peer File Storage and Backup
  • Narwhal: An Implementation of Zero Knowledge Authentication
  • Two Factor Zero Knowledge Proof Authentication System
  • Security Analysis of Wearable Fitness Devices (Fitbit)
  • IV = 0 Security: Cryptographic Misuse of Libraries
  • CertCoin: A NameCoin Based Decentralized Authentication System
  • Computing on Encrypted Data
  • Security in Client-Server Android Apps
  • Keys Under the Welcome Mat
  • Unsafe and Unsound: Cryptoanalysis of Leaky Acoustic Signals
  • SendSecure
  • Speedy: A Sybil-resistant DHT Implementation

For more information about these projects, please visit the 2014 6.857 class site.

Security Books

There are three recommended textbooks (not required!) for this course. In addition, we have a number of other suggestions collected over previous years.

  • Katz, Jonathan, and Yehuda Lindell. Introduction to Modern Cryptography. Chapman and Hall / CRC, 2007. ISBN: 9781584885511. [Preview with Google Books]
  • Ferguson, Niels, Bruce Schneier, and Tadayoshi Kohno. Cryptography Engineering: Design Principles and Practical Applications. Wiley, 2010. ISBN: 9780470474242.
  • Paar, Christof, and Jan Pelzl. Understanding Cryptography: A Textbook for Students and Practitioners. Springer, 2011. ISBN: 9783642041006. [Preview with Google Books]

Other Suggested Textbooks

  • Stamp, Mark. Information Security: Principles and Practice. John Wiley & Sons, 2011. ISBN: 9780470626399. [Preview with Google Books]
  • Menezes, Alfred, Paul van Oorschot, and Scott Vanstone. Handbook of Applied Cryptography. CRC Press, 1996. ISBN: 9780849385230. [Preview with Google Books
    This is a very comprehensive book. The best part is that you can download this book online! The hardcopy is very convenient though.
  • Schneier, Bruce. Applied Cryptography: Protocols, Algorithms, and Source Code in C. 2nd ed. John Wiley & Sons, 1996. ISBN: 9780471117094. 
    This is the best book to read for an introduction to applied security and cryptography. There is much less math than the book by Menezes et al. Sometimes statements are made without much justification, but no other book even compares to this comprehensive introduction to cryptography. The bibliography alone is worth buying the book.
  • Paar, Christof, and Jan Pelzl. Understanding Cryptography_: A Textbook for Students and Practitioners_. Springer, 2011. ISBN: 9783642041006. [Preview with Google Books]
  • Anderson, Ross. Security Engineering: A Guide to Building Dependable Distributed Systems. John Wiley & Sons, 2001. ISBN: 9780471389224. 
    An excellent book on security in real world systems.
  • Stinson, Douglas. Cryptography: Theory and Practice. Chapman and Hall / CRC, 2005. ISBN: 9781584885085. [Preview with Google Books
    This used to be required for 6.875, the theory of cryptography class at MIT.
  • Schneier, Bruce. Secrets and Lies: Digital Security in a Networked World. John Wiley & Sons, 2004. ISBN: 9780471253112. [Preview with Google Books
    Schneier used to advocate good cryptography as the solution to security problems. He has since changed his mind. Now he talks about risk management and cost-benefit analysis.
  • Rescorla, Eric. SSL and TLS: Designing and Building Secure Systems. Addison-Wesley, 2001. 
    The only book you need to read to learn about the evolution, politics, and bugs in the development of SSL. Eric’s a swell guy too; buy his book.
  • Neumann, Peter. Computer Related Risks. Addison-Wesley Professional, 1994. ISBN: 9780201558050. [Preview with Google Books
    Power grid failures. Train collisions. Primary and backup power lines blowing up simultaneously. These events aren’t supposed to happen! Neumann offers a plethora of stories about the risks and consequences of technology, gathered from his Risks mailing list. On a side note, Neumann is also responsible for coming up with the pun/name “Unix.”
  • Nielsen, Jakob. Usability Engineering. Morgan Kaufmann, 1993. ISBN: 9780125184069. [Preview with Google Books
    There are a lot of non-intuitive GUIs out there for security products. Anyone making a security product for use by humans should learn about the principles of smart GUIs.
  • Kaufman, Charlie, Radia Perlman, and Mike Speciner. Network Security: Private Communication in a Public World. 2nd ed. Prentice Hall, 2002. ISBN: 9780130460196. [Preview with Google Books
    The authors discuss network security from a very applied approach. There is a lot of discussion about real systems, all the way down to the IETF RFCs and the on-the-wire bit representations. The authors also have a fun, informal style.
  • Garfinkel, Simson, and Gene Spafford. Web Security, Privacy & Commerce. O’Reilly Media, 2001. ISBN: 9780596000455. [Preview with Google Books
    It’s hard to keep up with all the security software out there. But these authors do a good job documenting it all. Garfinkel was an undergraduate and PhD student at MIT.
  • Kahn, David. Codebreakers. Signet, 1973. ISBN: 9780451089670.
  • Hallam-Baker, Phillip. The dotCrime Manifesto: How to Stop Internet Crime. Addison-Wesley, 2007. [Preview with Google Books]
  • Smart, Nigel. Cryptography: An Introduction. 3rd ed. Mcgraw-Hill College, 2004. ISBN: 9780077099879.
  • Yan, Song Y., and Martin E. Hellman. Number Theory for Computing. Springer, 2002. ISBN: 9783540430728. [Preview with Google Books]
  • Angluin, Dana. Lecture Notes on the Complexity of Some Problems in Number Theory. Yale University, 1982. 
    Chapters 3–10 provide relevant number theory for the class.

Security Conferences

Papers

Most of the reading material in 6.857 comes from conferences on computer and network security. Here is a list of the papers we hope to discuss; we won’t have time for everything. Send us a note if you see a paper that greatly interests you.

Miscellaneous

  • CSAIL Security Seminar: Attend the seminar talks if you are interested in current security research.
  • The 6.033 textbook, particularly the chapter on Information security (PDF).
  • IEEE CIPHER newsletter
  • Schneier’s CRYPTOGRAM
  • comp.risks archive via UseNet contains the latest few issues, it can also be browsed via Discuss.
  • sci.crypt archive via UseNet contains discussion of cryptography. A lot of the stuff is questions by people unfamiliar with the topic or just starting out, but there are sometimes useful postings in there too.
  • Ron Rivest’s Cryptography Page has lots of links.
  • CERT is responsible for helping disseminate information on security problems with computer systems.
  • Phrack is an electronic publication aimed at electronic hackers; read and enjoy, but don’t abuse.
  • alt.2600 is yet another hacker publication, which also has a splufty web page.

Course Meeting Times

Lectures: 2 sessions / week, 1.5 hours / session

Recitations: 1 session / week, 1.5 hours / session

Prerequisites

The prerequisites for the course are 6.033 Computer System Engineering and 6.042J Mathematics for Computer Science. It is recommended that students have had 6.006 Introduction to Algorithms or 6.046J Design and Analysis of Algorithms and experience with modular arithmetic.

Description

6.857  Network and Computer Security is a 12-unit (3-0-9) H-level course intended primarily for seniors and first-year graduate students. It fits within the Computer Systems Concentration. Graduate students will receive H-credit for this class.

Textbook

There is no required textbook for this course; lecture notes will be provided. A list of recommended books is available on the Related Resources page; that page also lists other references you may find useful.

Groups

6.857 Network and Computer Security is a group-oriented course. Students will work in groups on both homeworks and the final project. It is not expected that your project group will be the same as your homework group(s), although that is perfectly fine.

The final project team should be determined by Lecture 10. To keep groups running smoothly, students should ensure that their fellow members are actively participating and should communicate regularly.

Homework

We will distribute five problem sets on a biweekly basis.

Homework should be submitted in PDF format. For homework involving non-trivial mathematics, students are strongly encouraged to use LaTeX to typeset their answers. Homework that is difficult for the graders to read will lose points.

Late homework will not be accepted. If in doubt, turn your problem set in early. Solutions will be distributed with corrected homework–hopefully within a week of being collected.

Generally, homework must be done in groups (although we reserve the right to require individual homework assignments). You are to work on group problem sets and final projects in groups of (preferably) three or four. Each group will turn in one problem set, and one grade will be given for each problem set. You must work in groups; homeworks turned in by individuals, pairs, pentuples, etc. will not be accepted.

Be sure that you understand and approve the solutions turned in to each problem. As noted above, the staff will establish the initial organization into groups for the first three problem sets, but you may organize your own groups for the later homeworks and for the final project.

We may occasionally assign homework that you must answer individually; see “Collaboration and Plagiarism” for the policy governing these assignments.

Tests

We will have one in-class quiz (Lecture 19). The quiz will test your knowledge of material from lectures, problem sets, and readings. There is no final exam.

Final Project

Students will be responsible for a final project. You must work in a group of three or four people. The nature and the topic of the project is your choice, although it needs the approval of the teaching staff. We will generally approve interesting topics about cryptography, network security, and / or computer security.

It is advisable to get started early; we will gladly accept proposals before the deadline. Early submission gives us a chance to review and approve your project proposal, and to suggest references that you may have overlooked.

Grading

ACTIVITIES PERCENTAGES
Problem Sets 40%
Quizzes 20%
Final Project 40%

Collaboration and Plagiarism

No collaboration is permitted on the in-class quiz. All tests are open book and open notes, but closed electronic devices. We encourage you, however, to prepare for the quiz by discussing course material with your classmates.

You may collaborate with individuals from other groups in problem sets, but your solutions must be written up only by individuals from your group. For individual homework assignments (if any), you may discuss the problem set material with others. You must, however, write up your solutions independently.

If you do collaborate, acknowledge your collaborators in the write-up for each problem. If you obtain a solution with help (e.g., through library work or a friend), acknowledge your source and write up the solutions on your own. In most of your solutions, we will expect to see citations.

You may use any reference material to complete your homework assignments, including material on the Internet and material from previous years. However, we cannot emphasize enough that you must cite all your sources properly.

You must remove any possibility of someone else’s work from being misconstrued as yours. Plagiarism and other anti-intellectual behavior will be dealt with severely.

Ethics

This is a course on Network and Computer Security. Although the course is primarily concerned with techniques that are designed to increase the security of networks and computer systems, a proper understanding of those systems requires that you be versed in their vulnerabilities and failings as well.

Nevertheless, unless you have explicit written authorization from the owner and operators of a computer network or system, you should never attempt to penetrate that system or adversely affect that system’s operation. Such actions are a violation of MIT policy and, in some cases, violations of State and Federal law. Likewise, you should refrain from writing computer viruses, worms, self-reproducing code, or other kinds of potentially damaging software for this course unless you have explicit, written approval for the specific type of software that you wish to create. These kinds of programs are notoriously difficult to control and their release (intentional or otherwise) can result in substantial civil and criminal penalties.

In particular, term projects involving an evaluation of security of existing commercial products or systems need the approval of the course staff, who may require that you obtain permission from the vendor / supplier (depending on the nature of your proposed evaluation).

We strongly recommend that you consult the Athena Rules of Use and Section 13.2 of the MIT Policies and Procedures “Policy on the Use of Information Technology”.

Finally, we recommend that you read and review the ACM Code of Ethics and Professional Conduct.

We expect all students in this class to follow the guidelines presented in this document, and in the documents just cited. If you are in doubt about the legality or ethics of any activity related to this course, please consult the staff before undertaking any such activity.

Course Info

Instructor
As Taught In
Spring 2014
Level
Learning Resource Types
Problem Sets with Solutions
Lecture Notes
Projects
Programming Assignments